// use localStorage to store the authority info, which might be sent from server in actual project.
export function getAuthority(str) {
  // return localStorage.getItem('antd-mobile-authority') || ['admin', 'user'];
  const authorityString =
    typeof str === 'undefined' ? localStorage.getItem('antd-mobile-authority') : str;
  // authorityString could be admin, "admin", ["admin"]
  let authority;
  try {
    authority = JSON.parse(authorityString);
  } catch (e) {
    authority = authorityString;
  }
  if (typeof authority === 'string') {
    return [authority];
  }

  return authority || ['admin'];
}

export function setAuthority(authority) {
  const Authority = typeof authority === 'string' ? [authority] : authority;
  return localStorage.setItem('antd-mobile-authority', JSON.stringify(Authority));
}

export function setAuthorityMobile(authority, token, refreshToken) {
  console.log('====authority====');
  const proAuthority = typeof authority === 'string' ? [authority] : authority;

  /**
   * add token and refreshToken
   */
  localStorage.setItem('token', token);
  localStorage.setItem('refreshToken', refreshToken);

  return localStorage.setItem('antd-pro-authority', JSON.stringify(proAuthority));
}

/**
 * get token valule
 */
export function getToken() {
  let userInfo = localStorage.getItem('userInfo');
  return userInfo ? JSON.parse(userInfo) : userInfo;
}

export function removeToken() {
  delete localStorage.userInfo;
}
